# -*- coding: utf-8 -*-
from mod_log import logger
import datetime
import os
import random
import yaml
from .mobtype import MobType, MobSpellLine, ActiveMob
import mod.server.extraServerApi as serverApi
from legendaryPowerScript._lpcommon import apiUtil
from .. import fighters
from .._lpcommon.boundingboxes import CuboidBoundingBox
from .._lpcommon.vector import Vector
from ..npc.npcManager import NpcManager
class MobManager:
    def loadMobtypeOfOnlinePlayer(self, fighter, callback=None, mobType="lp:player_fighter"):
        # type: () -> - mobType
        """
        根据在线玩家，生成一个与其相同的怪物类型。此怪物拥有其装备、属性、技能、快捷栏物品，且会攻击所有玩家

        Args:
        - fighter: 玩家对象
        - callback: 回调函数，默认为None，用于在加载完成后执行回调操作。回调有一个参数，即生成的怪物类型

        返回值:
        - mobType: 生成的怪物类型
        """
        return MobType()


    def loadMobtypeOfPlayer(self, rawUid, callback=None):
        # type: () -> - mobType
        """
        根据离线玩家的存档，生成一个与其相同的怪物类型。此怪物拥有其装备、属性、技能、快捷栏物品，且会攻击所有玩家

        Args:
        - fighter: 玩家对象
        - callback: 回调函数，默认为None，用于在加载完成后执行回调操作。回调有一个参数，即生成的怪物类型

        返回值:
        - mobType: 生成的怪物类型
        """
        return MobType()


    def getMobType(self, name):
        # type: (str) -> MobType
        """
        获取移动类型对象。

        Args:
        - name: 移动类型的名称

        返回值:
        - mobType: 移动类型对象，如果没有找到对应的移动类型，则返回None
        """
        pass

    def getGlobalVariable(self, name):
        # type: () -> - value
        """
        获取全局变量的值。

        Args:
        - name: 全局变量的名称

        返回值:
        - value: 全局变量的值，如果找不到对应的全局变量，则返回0.0
        """
        pass

    def setGlobalVariable(self, name, value):
        # type: () -> None
        """
        设置全局变量的值。

        Args:
        - name: 全局变量的名称
        - value: 全局变量的值
        """
        pass

    def getVariableTypes(self):
        # type: () -> list[VariableType]
        """
        获取所有变量类型。

        返回值:
        - variableTypes: 包含所有变量类型的列表
        """
        pass

    def getVariableType(self, name):
        # type: (str) -> VariableType
        """
        获取指定名称的变量类型。

        Args:
        - name: 变量类型的名称

        返回值:
        - variableType: 变量类型对象，如果找不到对应的变量类型，则返回None
        """
        pass

    def saveGlobalVariable(self):
        # type: () -> None
        """
        保存全局变量到文件中。
        """
        pass

